package cn.mall.framework.wxsdk.core.msg;

import java.util.List;

import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 接收消息实体
 */
@Data
@EqualsAndHashCode(callSuper=false)
public class ReceiveMsg extends BaseMsg {

	/** 图片链接 */
	private String picUrl;
	/** 音频格式(arm,wav,mp3) */
	private String format;
	/** 语音识别结果,UTF-8编码 */
	private String recognition;
	/** 地图缩放大小 */
	private int scale;
    /** 地理位置信息 */
	private String label;
	/** 链接地址 */
	private String url;
	/** 事件KEY值 */
	private String eventKey;
	/** 二维码的ticket或是开放平台中服务方的ComponentVerifyTicket */
	private String ticket;
	/** 地理位置纬度 */
	private double latitude;
	/** 地理位置经度 */
	private double longitude;
	/** 地理位置精度 */
	private double precision;
    /** 扫描类型,一般是qcode */
    private String scanType;
    /** 扫描结果，即二维码对应的字符串信息 */
    private String scanResult;
    /** 发送的图片数量 */
    private int count;
    /** 发送的图片列表 */
    private List<PicInfo> picList;
    /** 朋友圈POI的名字，可能为空 */
    private String poiName;
	/**
	 * 微信发送消息状态（模板消息,群发消息）<pre/>
     * 群发的结构，为“send success”或“send fail”或“err(num)”。但send success时，<pre/>
     * 也有可能因用户拒收公众号的消息、系统错误等原因造成少量用户接收失败。err(num)是审核失败的具体原因，<pre/>
     * 可能的情况如下：<pre/>
     * err(10001), //涉嫌广告 <pre/>
     * err(20001), //涉嫌政治 <pre/>
     * err(20004), //涉嫌社会 <pre/>
     * err(20002), //涉嫌色情 <pre/>
     * err(20006), //涉嫌违法犯罪 <pre/>
     * err(20008), //涉嫌欺诈 <pre/>
     * err(20013), //涉嫌版权 <pre/>
     * err(22000), //涉嫌互推(互相宣传) <pre/>
     * err(21000), //涉嫌其他
	 */
	private String status;
    /** group_id下粉丝数；或者openid_list中的粉丝数 */
    private int totalCnt;
    /**
     * 过滤（过滤是指特定地区、性别的过滤、用户设置拒收的过滤，
     * 用户接收已超4条的过滤）后，准备发送的粉丝数，原则上，
     * FilterCount = SentCount + ErrorCount
     */
    private int filterCnt;
    /** 发送成功的粉丝数 */
    private int sentCnt;
    /** 发送失败的粉丝数 */
    private int errorCnt;
    /** 服务appid */
    private String appId;
    /**
     * none,代表该消息推送给服务
     * unauthorized,代表公众号取消授权
     */
    private String infoType;
    /** 取消授权的公众号 */
    private String unAuthAppid;

    @Override
    public String toString() {
        return "ReceiveMsg{" +
                "msgId='" + msgId + '\'' +
                ", createTime='" + createTime + '\'' +
                ", toUserName='" + toUserName + '\'' +
                ", fromUserName='" + fromUserName + '\'' +
                ", msgType='" + msgType + '\'' +
                ", event='" + event + '\'' +
                ", content='" + content + '\'' +
                ", mediaId='" + mediaId + '\'' +
                ", thumbMediaId='" + thumbMediaId + '\'' +
                ", title='" + title + '\'' +
                ", description='" + description + '\'' +
                ", picUrl='" + picUrl + '\'' +
                ", format='" + format + '\'' +
                ", recognition='" + recognition + '\'' +
                ", scale=" + scale +
                ", label='" + label + '\'' +
                ", url='" + url + '\'' +
                ", eventKey='" + eventKey + '\'' +
                ", ticket='" + ticket + '\'' +
                ", latitude=" + latitude +
                ", longitude=" + longitude +
                ", precision=" + precision +
                ", status='" + status + '\'' +
                ", totalCnt='" + totalCnt + '\'' +
                ", filterCnt='" + filterCnt + '\'' +
                ", sentCnt='" + sentCnt + '\'' +
                ", errorCnt='" + errorCnt + '\'' +
                ", appId='" + appId + '\'' +
                ", infoType='" + infoType + '\'' +
                ", unAuthAppid='" + unAuthAppid + '\'' +
                "} ";
    }
}
